#include<vector> #include<iostream> #include<stack> #include<queue> #include<algorithm> #include<unordered_map> #include<climits> usingnamespace std; structNode { int n, cur; Node* next; Node(int n0, int cur0) : n(n0), cur(cur0) { next = nullptr; } };
classSolution { public: intremoveBoxes(vector<int>& boxes){ Node* head = newNode(0,0); Node* move = head; int i = 0; int len = boxes.size(); int total[101] = {0}; while(i < len) { int cur = boxes[i]; int n = 0; while(i < len && cur == boxes[i]) { n++; i++; total[cur]++; } move->next = newNode(n, cur); move = move->next; }
intmain(){ Solution s; vector<int> v = {5,8,3,8,4,8,5,7,4,2}; int res = 18; int ret = s.removeBoxes(v); cout << "ret = " << ret << " res = " << res << " " << (res == ret) << endl; return0; }